Evaluacion de modelos: Adult income dataset

El Census Bureau de EEUU realizó un censo en 1994 de una porción variada de la población adulta donde se especifican factores socioeconómicos de la persona y sus ingresos anuales. Como objetivo de este análisis es utilizar esos datos y lograr predecir, dada una nueva persona X, si su ingreso anual sería mayor o menor a 50000 dólares (Que ajustado por inflación, serían unos 93,000 dólares, un buen sueldo). Integraremos el uso de curvas ROC en este análisis para comparar modelos.

Dataset

El dataset está conformado por 32561 filas y 15 columnas (siendo una la salida del modelo).

Analisis

Este análisis va a ser realizado utilizando la herramienta rapidminer ya que es sencilla y este dataset en particular no necesita tantas transformaciones.

Preparación de datos

Cargamos los datos en Rapidminer y en principio, eliminaremos "education" ya que este y "education.num" dicen lo mismo de los datos pero uno de ellos lo dice con una variable continua, la cual nos sirve como cuantificación. Además, eliminaremos "relationship" ya que sus valores representan lo mismo que "marital.status". Esto se realizará con un bloque "Select Attributes".

A continuación, aplicamos un bloque "Replace missing values" para reemplazar todo dato faltante con la media de los datos. Por último, agregamos un bloque "Set role" donde marcamos como salida del modelo (label) al atributo "income".

Modelado

Como se especificó anteriormente, en este análisis buscamos ver cual modelo utilizado tendrá un mejor rendimiento sobre el conjunto de datos utilizado, es por ello que realizaremos el entrenamiento utilizando un bloque "Compare ROC's" que nos permite entrenar y comparar nuestros datos con varios algoritmos.

Utilizaremos Naive bayes, random forest (1000 árboles, maxima profundidad) y Regresión logística.

Asimismo, previo al bloque "Compare ROC's", usaremos un "multiply" y haremos 3 bloques validation, uno para cada uno de los modelos y bloques de Performance binomial con "AUC" , "precision" y "recall" marcados.

Modelo

Performance logistic regression

Performance Naive Bayes

Performance Random Forest

Curva ROC entre los 3 modelos

Puntuaciones AUC:

Observaciones

A la hora de comparar modelos, la accuracy del modelo no es un indicador suficiente de que tan performante fue. Es de ahí que surge el uso de las Curvas ROC. Estas se basan en la graficación de la comparativa entre verdaderos positivos y falsos positivos en cada punto de la curva, lo cual nos da una imagen viva de como el modelo se maneja clasificando a medida que avanza.
En particular, se puede apreciar como Naive Bayes, tiene una alta accuracy (80,69%) comparado con el resto de los modelos. Aun asi, en la gráfica ROC se ve claramente que su rendimiento es mucho peor, ¿Por qué ocurre esto?. Si bien su accuracy es muy buena, vemos que el recall para la clase de ingresos mayores a 50k, es de un 35.12%, lo cual es muy bajo. Esto indica una cantidad enorme de falsos positivos, dato no menor en problemas de clasificación binomial. Esto demuestra la importancia de ver todos estos indicadores ya que a simple vista parece que tenemos un modelo exitoso cuando no es así ni por asomo.

Finalmente, la Regresión logística y Random forest se comportan muy parecidos con estos datos, siendo el mejor de ambos Random Forest con mayor recall y precisión en todos los casos, indicando una mayor tasa de verdaderos positivos y de verdaderos negativos. En la gráfica ROC, sus curvas se ven bastante parecidas, indicando lo analizado anteriormente y su área debajo de la curva (AUC) también es muy parecida (0.907 para regresión y 0.912 para Random forest).

Conclusión

Se demuestra el uso de indicadores alternativos para medir la performance de los modelos, se explica el funcionamiento de las matrices de confusión (matriz de performance) y de las gráficas ROC y su interpretación.

Referencias